#ifndef __MYSQLFUNC__
#define __MYSQLFUNC__

#include <54func.h>

typedef struct userTable_s{
    int id;//自动增长
    char userName[20];//用户名
    char userSalt[20];//用户盐值
    char userCryptpasswd[100];//用户密文
    char userPwd[1000];//用户路径(根目录下)
    int queryResult;//查询结果
}userTable_t;

typedef struct fileTable_s{
    int id;//自动增长
    char fileName[100];//文件名, 来自客户端
    char userName[20];//用户名
    int pre_id;//该文件上一层目录id
    char path[100];//路径
    char type[2];//d-目录文件, f-普通文件
    char *fileMd5;//目录文件md5码=NULL, 文件有md5码
    int tomb;//存在=0, 不存在=1
    int queryResult;//查询结果
}fileTable_t;

int mysqlInit(MYSQL **pmysqlConn);

int mysqlQuery(MYSQL *pmysqlConn, const char *userName, int *pQueryResult);

//往表中插入数据
int mysqlInsert(MYSQL *pmysqlConn, const char* tableName, void *arg, int *insertResult);
int fileTableInit(const char* fileName, int pre_id, const char* path, 
                    const char* type, const char* fileMd5, int tomb, void *arg);

//生成盐值
int generateInt(int length, char str[]);
int generateStr(int length, char str[]);
int generateSalt(char salt[]);

int passwdVerify(MYSQL *pmysqlConn, const char* userName, const char* userPasswd, int *pQueryResult);
int fileTableQuery(MYSQL *pmysqlConn, const char* tableName,
                    const char* username, const char* path, fileTable_t* fileTable);

#endif